/*
 * KooiAdmin.h
 *
 *  Created on: Sep 9, 2011
 *      Author: walter
 */

#ifndef KOOIADMIN_H_
#define KOOIADMIN_H_

#include <map>
#include "Kooi.h"
#include "../Templates/RefHandle.h"

//KooiAdmin wordt een singleton.
//zodat dieren aanmaken en werknemers van dezelfde lijst van kooien gebruik kunnen maken
// en zodat de dierentuin minder logica heeft en zo min mogelijk moet weten

class KooiAdmin{
private:
	static KooiAdmin* pinstance;
	map<string, RefHandle<Kooi> >* kooien; //lijst van alle kooien

public:
	~KooiAdmin();

	static KooiAdmin* instance();//instantie call
	KooiAdmin* getInstance(); // status van instantie aanroepen
	map<string, RefHandle<Kooi> > *getKooien();//huidige kooienlijst opvragen
	void drukKooienInhoudAf(); //kooien inhoud uitprinten
	RefHandle<Kooi> getKooi(string);//kooi opzoeken
	void maakKooi(string);
	void verwijderKooi(string);


protected:
	KooiAdmin();
	KooiAdmin(const KooiAdmin&);
	KooiAdmin& operator=(const KooiAdmin&);

};


#endif /* KOOIADMIN_H_ */
